﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using br.com.nrtech.ccb.bot.bll;

namespace br.com.nrtech.ccb.bot.ui.editor
{
    public partial class fListaIgrejas : Form
    {
        MySqlDataAdapter adapter;
        DataSet dsLista;
        moIgreja igrejaFiltro = new moIgreja();

        public fListaIgrejas()
        {
            InitializeComponent();
        }

        public void listarIgrejas()
        {
            adapter = daoIgreja.listarIgrejas(igrejaFiltro);
            dsLista = new DataSet();
            adapter.Fill(dsLista, "igreja");
            dataGridView1.DataSource = dsLista;
            dataGridView1.DataMember = "igreja";

            lbCount.Text = "Total de igrejas listadas: " + dsLista.Tables[0].Rows.Count;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            igrejaFiltro.pais = cbPais.SelectedValue.ToString();
            igrejaFiltro.cep = tbCep.Text;
            igrejaFiltro.cidade = tbCidade.Text;

            if (cbUF.SelectedValue != null)
                igrejaFiltro.uf = cbUF.SelectedValue.ToString();
            
            String caption = Text;
            Text = "Obtendo dados...aguarde...";
            button1.Enabled = false;

            listarIgrejas();
            button1.Enabled = true;
            Text = caption;
        }

        private void dataGridView1_DoubleClick(object sender, EventArgs e)
        {
            moIgreja igreja = daoIgreja.getIgreja(Convert.ToInt32(dataGridView1.SelectedRows[0].Cells["ID"].Value));
            if (igreja == null) return;

            fIgreja formIgreja = new fIgreja();
            formIgreja.tbAlt.Text = igreja.dtAlt.ToString("dd/MM/yyyy HH:mm:ss");
            formIgreja.tbBairro.Text = igreja.bairro;
            formIgreja.tbCad.Text = igreja.dtCad.ToString("dd/MM/yyyy HH:mm:ss");
            formIgreja.tbCep.Text = igreja.cep;
            formIgreja.tbCidade.Text = igreja.cidade;
            formIgreja.tbCulto.Text = igreja.diasCulto;
            formIgreja.tbEnd.Text = igreja.endereco;
            formIgreja.tbID.Text = igreja.id.ToString();
            formIgreja.tbMais.Text = igreja.maisInfo;
            formIgreja.tbPais.Text = igreja.pais;
            formIgreja.tbRef.Text = igreja.referencia;
            formIgreja.tbRJM.Text = igreja.rjm;
            formIgreja.tbTel.Text = igreja.telefone;
            formIgreja.tbUF.Text = igreja.uf;
            formIgreja.tbVersao.Text = igreja.versao;
            formIgreja.cbCentral.Checked = igreja.central;
            formIgreja.cbTsda.Checked = igreja.tsda;
            formIgreja.cbAtiva.Checked = igreja.ativa;
            formIgreja.cbReforma.Checked = igreja.emReforma;
            formIgreja.tbEnsaios.Text = igreja.ensaiosMusicais;
            formIgreja.tbLocalProv.Text = igreja.localProvisorio;
            formIgreja.tbCultoRef.Text = igreja.diasCultoProv;
            formIgreja.dtpAbertura.Value = igreja.dataAbertura;

            if (formIgreja.ShowDialog() == DialogResult.OK)
            {
                DataRowView drv = dataGridView1.CurrentRow.DataBoundItem as DataRowView;
                DataRow[] update = new DataRow[] { drv.Row };
                adapter.Update(update);


                listarIgrejas();
            }
        }

        private void fListaIgrejas_Load(object sender, EventArgs e)
        {
            MySqlDataAdapter adpPaises = daoIgreja.listarPaises();
            DataSet paises = new DataSet();
            adpPaises.Fill(paises, "igreja");

            cbPais.Items.Add("");
            
            cbPais.DataSource = paises.Tables[0];
            cbPais.DisplayMember = "pais";
            cbPais.ValueMember = "pais";
        }

        private void cbPais_SelectedIndexChanged(object sender, EventArgs e)
        {
            MySqlDataAdapter adpPaises = daoIgreja.listarUFs(cbPais.SelectedValue.ToString());
            DataSet estados = new DataSet();
            adpPaises.Fill(estados, "igreja");
            
            cbUF.DataSource = null;
            cbUF.Items.Add("");

            cbUF.DataSource = estados.Tables[0];
            cbUF.DisplayMember = "uf";
            cbUF.ValueMember = "uf";
            
        }

        private void btNova_Click(object sender, EventArgs e)
        {
            fIgreja formIgreja = new fIgreja();
            if (formIgreja.ShowDialog() == DialogResult.OK)
            {
                listarIgrejas();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Deseja mesmo excluir esta igreja?", "Confirmação", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                daoIgreja.apagarIgreja(Convert.ToInt32(dataGridView1.SelectedRows[0].Cells["ID"].Value));
                listarIgrejas();
            }
        }
    }

}
